今天來到我們藍牙開發系列的最終章。
過去幾天,我們完成了 藍牙核心服務(BluetoothServices.swift)、代理協定(BluetoothServiceDelegate.swift)、以及 主畫面控制與資料顯示(MainViewController.swift)。
而今天,我們要介紹的是負責藍牙清單 UI 呈現的 客製化 Cell(BluetoothTableViewCell.swift),並為整個系列做一個總結。
在專案中,我們使用 UITableView 來顯示掃描到的藍牙設備。
每一列都需要一個自訂的 TableViewCell,程式碼如下:
import UIKit
class BluetoothTableViewCell: UITableViewCell {
    @IBOutlet weak var lbName: UILabel! // 顯示設備名稱的標籤
    
    override func awakeFromNib() {
        super.awakeFromNib()
        // 初始化 UI 設定
    }
    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        // 配置選中狀態的樣式
    }
}
這段程式的重點有兩個:
@IBOutlet weak var lbName:用來顯示藍牙設備的名稱。當 CBCentralManager 掃描到設備後,我們會將 peripheral.name 顯示在這裡。awakeFromNib() 與 setSelected():這兩個是 UIKit 的生命週期方法,當從 Storyboard 或 XIB 載入 Cell 時,會在這裡進行初始化或狀態更新設定。到目前為止,我們已經完成了這個專案的三個核心模組:
BluetoothServices.swift
CBCentralManager 進行掃描、連線、與斷線管理。shared 設計,方便全域共用。BluetoothServiceDelegate.swift
protocol 將藍牙掃描與數據讀取結果回傳給 UI 層。BluetoothTableViewCell.swift
這個系列從 Info.plist 權限設定 開始,到 核心服務架構設計、Delegate 資料回傳、最後到 UI 顯示與互動,完整地帶你走過 iOS 藍牙開發的基本流程。
藍牙開發的挑戰主要在於非同步事件的管理與設備連線狀態的維護,而我們的專案正是建立在這些重點基礎上。
接下來你可以繼續擴充以下功能:
明日將提供完整的 專案程式碼與 XIB 介面範例,方便大家直接下載、測試與延伸開發。